RAID, which stands for Redundant Array of Independent Disks, is a technology for providing fault tolerance to a computer data storage subsystem. RAID systems are commonly attached to computing systems to allow them to survive a storage device failure. For a detailed description of RAID technology see the RAID advisory boards (RAB) handbook on System Storage Technology 6th edition.
A volume manager is a tool for managing the storage resources of the computing system. Volume managers are primarily used to organize storage devices into logical volumes, which may span multiple storage devices, or to logically divide up storage devices into one or more logical volumes.
RAID capability can be implemented in a dedicated HW device, known as a RAID controller, or it can be implemented as server resident driver level software, commonly known as Software RAID. Software RAID is often integrated into a volume manager.
Recently there has been research into the development and application of distributed RAID algorithms. Distributed RAID allows a cluster of controllers or hosts to directly share access to disk drives while maintaining RAID functionality. If any node in the cluster fails, the surviving nodes can continue accessing the RAID protected disk drives.
Most large-scale information systems use dedicated hardware based RAID controllers because they offer greater performance than software based RAID. This is because software RAID requires parity computations to be executed by the server's CPU, thus taking compute power away from applications. Since hardware RAID does the parity computations on a dedicated processor, it does not hinder application performance.
Though hardware RAID has the advantage in performance, it is much more expensive and complicated to implement. Thus, it is desirable to have a software RAID solution that would give software RAID a level of performance that is closer to, equal or greater than hardware based RAID.